import React from 'react';
import { Button } from 'antd';
import Authorized from './index';

/**
 * 带权限控制的按钮组件
 * 当用户没有指定权限时，按钮将被禁用或隐藏
 * @param {string} permission - 权限标识符
 * @param {boolean} hideWhenNoPermission - 无权限时是否隐藏按钮，默认为false（禁用按钮）
 * @param {object} props - 按钮属性
 */
const AuthorizedButton = ({
  permission,
  hideWhenNoPermission = true,
  children,
  ...props
}) => {
  // 无权限时显示的内容
  const noMatch = hideWhenNoPermission ? null : (
    <Button {...props} disabled>
      {children}
    </Button>
  );

  return (
    <Authorized
      permission={permission}
      noMatch={noMatch}
    >
      <Button {...props}>{children}</Button>
    </Authorized>
  );
};

export default AuthorizedButton;